/*
局部变量：
        定义/声明在函数内部的变量
        周期：函数调用时分配任务，函数调用结束后内存释放
        作用域：只在函数内部
静态局部变量：
        作用域：只在函数内部
        周期：第一次调用函数时，分配空间，一直到程序结束才释放
全局变量：
        声明/定义在函数的外部的变量
        作用域：定义之处的后续程序都可以使用，（整个程序都可以访问）
        周期：从程序运行到程序结束
静态全局变量
        作用域：只在定义/声明的源文件下有效
全局变量的外部声明：
        对全局变量进行extern 外部声明后，可以在定义/声明变量之前使用该变量，也可以在其他文件使用该变量
        注意：！！！！全局变量的外部声明不可以初始化赋值
        局部变量与全局变量同名时，在函数内部操作变量时是局部变量

头文件的<>与""的区别
        <>：库函数  ---系统   会默认先去系统的库里面查找头文件
        ""：用户定义          会默认去当前的工程文件下去查找头文件，然后再去系统库里面去查找
*/
#include <stdio.h>
#include "t.h"
extern int g_a;
int g_a=100;
static int g_b=200;
void swap(int a,int b)
{
    g_a=1000;
    printf("swap函数内g_a:%d,g_b:%d\n",g_a,g_b);
    printf("swap函数1 a=%d,b=%d\n",a,b);
    int t=a;
    a=b;
    b=t;
    //在此函数中  实现a b的交换
    printf("swap函数2 a=%d,b=%d\n",a,b);
}
//游戏积分
void game(void)
{
    g_a++;
    printf("game函数内g_a:%d,g_b:%d\n",g_a,g_b);
    //静态局部变量
    static int s=0;//积分为0
    s++;//积分加1
    printf("当前游戏积分：%d\n",s);
}
int main(void)
{
    int a=10,b=20;
    printf("swap前a=%d,b=%d\n",a,b);
    swap(a,b);
    printf("swap后a=%d,b=%d\n",a,b);
    game();
    game();
    g_a--;
    printf("main函数内g_a:%d,g_b:%d\n",g_a,g_b);
    fun_t_c();
    return 0;
}